/*
 * Copyright 2025 KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <https://www.gnu.org/licenses/>.
 */

import QtQml 2.15
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.ukui.quick.items 1.0 as UkuiItems
import org.ukui.quick.platform 1.0

Item {
    property alias labelText: label.text
    property alias value: lineInput.text
    property bool enableBackground: true
    property int itemIndex: -1
    property int layoutMargins: 0

    signal lineTextChanged(string text)

    UkuiItems.StyleBackground {
        anchors.fill: parent
        useStyleTransparency: false
        visible: enableBackground
    }

    RowLayout {
        spacing: 0
        anchors.fill: parent
        anchors.leftMargin: layoutMargins
        anchors.rightMargin: layoutMargins

        UkuiItems.StyleText {
            id: label

            Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
            elide: Text.ElideRight
            Layout.maximumWidth: parent.width * 0.6
            Layout.fillWidth: true
        }

        Item {
            Layout.fillWidth: true
        }

        TextField {
            id: lineInput

            color: Theme.buttonText()
            Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
            Layout.preferredWidth: 180
            Layout.preferredHeight: 36
            placeholderText: ""
            onTextChanged: {
                lineTextChanged(text);
            }

            font {
                pixelSize: 16
            }

            background: UkuiItems.Background {
                radius: 6
                color: Theme.button()
                Theme.onPaletteChanged: {
                    color = Theme.button();
                }
            }

        }

    }

}
